// ==UserScript== // @name bilibilipage // @namespace http://tampermonkey.net/ // @version 2025-02-04 // @description bilibili改版up主投稿页面每次刷新会跳到第一页,这个可以保存跳到最后点击的页面。 // @author You // @match https://space.bilibili.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=bilibili.com // @grant none // ==/UserScript== (function () { 'use strict'; // 提取当前页面的mid (用户ID) const mid = window.location.pathname.split('/')[1]; // 设置输入框所在的父元素选择器 const parentSelector = '.video-header__top'; // 假设这个类存在,需要插入输入框到这个类 // 查找按钮的选择器 const buttonSelector = '.vui_button.vui_button--no-transition.vui_pagenation--btn.vui_pagenation--btn-num'; // 创建 MutationObserver 来监听 DOM 变化 const observer = new MutationObserver(() => { const parentElement = document.querySelector(parentSelector); // 获取目标输入框 const inputElement = document.querySelector('.vui_input__input.vui_input__input-resizable'); // 如果找到目标输入框 if (inputElement) { // 从localStorage获取保存的按钮数字,并区分不同mid const savedButtonNumber = localStorage.getItem(`savedButtonNumber_${mid}`) || '0'; // 默认0 // 填充数字到输入框 inputElement.value = savedButtonNumber; // 模拟回车确认 inputElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' })); //console.log('从localStorage获取的数字已填充并回车:', savedButtonNumber); } // 监听所有符合条件的按钮的点击事件 const buttonElements = document.querySelectorAll(buttonSelector); buttonElements.forEach((buttonElement) => { buttonElement.addEventListener('click', (event) => { const buttonText = event.target.textContent.trim(); const buttonNumber = parseInt(buttonText, 10); // 如果提取到有效的数字,则更新到 localStorage,区分mid if (!isNaN(buttonNumber)) { localStorage.setItem(`savedButtonNumber_${mid}`, buttonNumber); //console.log('保存的按钮数字是:', buttonNumber); } }); }); }); // 观察整个 document.body,监听子节点变化 observer.observe(document.body, { childList: true, subtree: true }); })();